]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appDisplay: Check instanceof AppIcon using constructor inside the class
authorJonas Dreßler <verdre@v0yd.nl>
Tue, 29 Oct 2019 22:47:55 +0000 (23:47 +0100)
committerFlorian Müllner <florian.muellner@gmail.com>
Thu, 31 Oct 2019 19:35:37 +0000 (19:35 +0000)
It seems like some recent change (maybe the move to a ClutterActor
subclass for AppIcon) broke the check whether the drag source is an
instance of AppIcon. While the drag source indeed is an AppIcon and
everything else works correctly, the check still returns false, which
breaks the creation of new folders using DnD.

Theoretically it makes sense that this doesn't work, because we're
assigning AppIcon using `var AppIcon =` and that will only get set after
`GObject.register_class()` finished, so accessing `AppIcon` inside that
function seems risky and is probably wrong.

Fix this by comparing to `this.constructor` instead of `AppIcon`, which
works fine and we know for sure exists at this point.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/794

js/ui/appDisplay.js

index 6ff6be735e63c94d7c824bed7cb85fc06a881f3a..ee0beabe97d9b5115dc049e89ba68be1b73a277e 100644 (file)
@@ -2372,7 +2372,7 @@ var AppIcon = GObject.registerClass({
         let view = _getViewFromIcon(source);
 
         return source != this &&
-               (source instanceof AppIcon) &&
+               (source instanceof this.constructor) &&
                (view instanceof AllView);
     }